Skip to content

release v18.0.0#265

Merged
siarheihuzarevich merged 21 commits intomainfrom
feature/shuzarevich/interation18
Jan 26, 2026
Merged

release v18.0.0#265
siarheihuzarevich merged 21 commits intomainfrom
feature/shuzarevich/interation18

Conversation

@siarheihuzarevich
Copy link
Member

Highlights

  • Connection Waypoints (new feature) — interactive waypoint editing for connections with candidate points and drag-and-drop.
  • Pinch-to-zoom (new feature) — smooth multi-touch zoom for trackpads and touch devices.
  • Control Flow + Content Projection compatibility — improved support for @if/@for rendering by extending projection slots for nodes/connections.
  • Custom Backgrounds — richer SVG pattern support plus a new example for advanced backgrounds.

Features

  • zoom: add pinch-to-zoom support for touch/trackpad gestures (5dfeeb5)
  • connection: introduce waypoints with candidates + drag-to-add / drag-to-move interactions and demo example (19772df, 229d6e3)
  • connection: add anchors utility and refactor connection builders + candidate generation (3276baf, b18109a)
  • canvas: improve content projection for Angular Control Flow usage (@if/@for) by supporting grouped slots ([fNodes], [fConnections]) (b18109a)
  • background: support custom/complex SVG patterns + add a dedicated example (29e28c8)
  • showcase: add AI Low Code Platform entry and links (6013ee7, dd84ae8)

Improvements

  • Refactored multiple connection/interaction modules to improve readability, maintainability and internal consistency.
  • Candidate/waypoint handling is now more predictable across all connection types.

Documentation

  • fix url to custom-connection-type component in guide (a6421ac)

siarheihuzarevich and others added 20 commits January 26, 2026 19:01
…ties

- Renamed component files and classes for consistency.
- Removed deprecated properties fText and fTextStartOffset from FConnectionComponent.
- Updated references in templates to reflect the new component names.
- Adjusted stylesheets to match the renamed components.
- Modified tests to accommodate the changes in component structure.

Signed-off-by: Siarhei Huzarevich <shuzarevich@gmail.com>
… files and update properties

- Renamed component files to remove the '.component' suffix.
- Updated event handler names for consistency.
- Changed property names in connections to 'source' and 'target'.
- Refactored connection logic to use signals for state management.
- Improved readability by simplifying the component structure.

Signed-off-by: Siarhei Huzarevich <shuzarevich@gmail.com>
…erties

- Renamed component files from drag-handle.component.* to drag-handle.*
- Updated import paths in documentation.config.ts and examples.config.ts
- Changed method names in drag-handle.component.ts for clarity
- Adjusted template bindings in drag-handle.component.html
- Refactored test descriptions in drag-handle.component.cy.ts for consistency

Signed-off-by: Siarhei Huzarevich <shuzarevich@gmail.com>
…operties

- Renamed execution classes from `*Execution` to `*` for consistency.
- Updated request properties from `fConnection` and `fComponent` to `connection` and `component` respectively.
- Refactored handle methods to destructure request parameters for clarity.
- Removed deprecated properties and ensured all references are updated accordingly.

Signed-off-by: Siarhei Huzarevich <shuzarevich@gmail.com>
- Updated debounceTime function to return an object with callback and cleanup methods
- Refactored listen method in FChannelHub to handle subscriptions and cleanups more effectively
- Renamed execution files for ListenCountChanges and ListenDataChanges for consistency
- Removed unnecessary whitespace and improved code formatting across multiple files

Signed-off-by: Siarhei Huzarevich <shuzarevich@gmail.com>
- Renamed AddZoomToStoreExecution to AddZoomToStore
- Renamed RemoveZoomFromStoreExecution to RemoveZoomFromStore
- Renamed SetZoomExecution to SetZoom
- Renamed ResetZoomExecution to ResetZoom
- Updated request properties to use consistent naming conventions
- Added constants for pinch normalization factors and thresholds

Signed-off-by: Siarhei Huzarevich <shuzarevich@gmail.com>
- Added calculateTouchCenter function to determine the center of two touch points.
- Implemented calculateTouchDistance function to measure distance between two touch points.
- Created PinchToZoomHandler class to manage pinch-to-zoom interactions.
- Developed PinchToZoomPreparation and PinchToZoomFinalize classes for handling zoom requests.
- Introduced normalization for pinch steps with normalizePinchStep function.

Signed-off-by: Siarhei Huzarevich <shuzarevich@gmail.com>
- Renamed FSingleSelectRequest to SingleSelectRequest for clarity
- Updated FSingleSelectExecution to SingleSelect and adjusted its logic
- Changed import paths to reflect new naming conventions
- Removed deprecated references to old single select files
- Enhanced readability and maintainability of the single select logic

Signed-off-by: Siarhei Huzarevich <shuzarevich@gmail.com>
- Renamed multiple files for better clarity and organization.
- Updated import paths to reflect new file locations.
- Consolidated exports in index files for easier access.
- Removed deprecated components and requests.
- Enhanced the structure of connection control points and related logic.

Signed-off-by: Siarhei Huzarevich <shuzarevich@gmail.com>
…ated code

- Introduced buildConnectionAnchors function to streamline anchor point creation
- Replaced calculateUserAnchorPoints with buildConnectionAnchors in multiple files
- Added joinSegmentPaths utility for concatenating segment paths
- Updated index exports to include new utilities

Signed-off-by: Siarhei Huzarevich <shuzarevich@gmail.com>
- Removed unused imports from app.component.ts for clarity
- Simplified app.component.html by changing router-outlet syntax
- Deleted commented-out methods and code to improve maintainability
- Updated package.json by removing unnecessary dependencies
…vot handling

- Introduced new control points functionality for connections (candidates + user-defined pivots)
- Added utilities for calculating curve and polyline candidates
- Added helpers to locate/resolve candidate and pivot positions along a connection
- Improved connection control points management for more predictable candidate lifecycle
- Refactored connection building logic for clarity and maintainability
- Removed deprecated control point APIs and legacy management methods
- Renamed control point candidate interface to IPivotCandidate
- Updated references to control points and candidates throughout the codebase
- Refactored connection-related utility functions to use pivot terminology
- Adjusted imports to reflect new file structure and naming conventions
- Removed unused exports and cleaned up related code
- Introduced Connection Waypoints: interactive waypoints to shape connection routes
- Added waypoint candidates to suggest insertion points and enable drag-to-add UX
- Implemented waypoint operations: insert from candidate, drag-to-move, right-click delete
- Emitted fConnectionWaypointsChanged to keep user state in sync
- Added "Connection Waypoints" example showcasing all built-in connection types
  (straight, segment, bezier, adaptive-curve) with show/enable toggles and styling
- Refactored picking/handling logic and related utils for clarity and maintainability
…upport

- Added FConnectionWaypoints component for managing waypoints
- Created HTML template for rendering waypoints and candidates
- Implemented methods for inserting, selecting, moving, and removing waypoints
- Introduced findExistingWaypoint utility for waypoint detection
- Updated moveConnectionWaypointHandler to support waypoint manipulation
…ethods

- Renamed connection-markers.component.html to connection-markers.html
- Renamed connection-markers.component.scss to connection-markers.scss
- Renamed connection-markers.component.ts to connection-markers.ts
- Updated template and style URLs in the component decorator
- Changed method name from onLoaded to loaded
- Adjusted ViewChild usage for canvas reference
- Renamed FNodeMovePreparationRequest to MoveNodePreparationRequest
- Updated references to the renamed class throughout the codebase
- Simplified constructor parameters to be readonly
- Refactored FNodeMovePreparationExecution to MoveNodePreparation
- Improved method names for clarity in drag-and-drop functionality
…culations

- Updated tests to use waypoints instead of pivots for path calculations.
- Refactored candidate calculation functions to return IPoint instead of IWaypointCandidate.
- Adjusted connection-related components to handle waypoints consistently.
- Removed unused imports and cleaned up related code for clarity.
…ogic

- Added a method to remove waypoints by index from the connection.
- Updated the waypoints management to reflect changes in the connection.
- Refactored the connection waypoint handling to improve clarity and maintainability.
- Renamed internal variables for consistency with the waypoint terminology.
- Added RemoveConnectionWaypoint class to handle waypoint removal.
- Created RemoveConnectionWaypointRequest class for request structure.
- Implemented logic to find connections and update waypoints accordingly.
- Emitted connection waypoints changed event after removal.
@siarheihuzarevich siarheihuzarevich self-assigned this Jan 26, 2026
- Added interactive waypoint editing for connections with drag-and-drop.
- Implemented pinch-to-zoom functionality for touch devices.
- Improved content projection for Angular Control Flow compatibility.
- Enhanced support for custom SVG backgrounds and added examples.
- Refactored connection and interaction modules for better maintainability.

BREAKING CHANGE:
- Updated `IFConnectionBuilderResponse` interface: removed `connectionCenter`, made `points` required, and added `candidates`.
- Removed deprecated inputs from `FConnectionComponent` and `FCanvasComponent`.

Signed-off-by: Siarhei Huzarevich <shuzarevich@gmail.com>
@siarheihuzarevich siarheihuzarevich added feature request This issue represents a new feature or feature request completed labels Jan 26, 2026
@siarheihuzarevich siarheihuzarevich merged commit 42bdabd into main Jan 26, 2026
5 checks passed
@siarheihuzarevich siarheihuzarevich deleted the feature/shuzarevich/interation18 branch January 28, 2026 08:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

completed feature request This issue represents a new feature or feature request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant